<?php

class UserController extends BaseController {

	/*
	|--------------------------------------------------------------------------
	| Default Home Controller
	|--------------------------------------------------------------------------
	|
	| You may wish to use controllers instead of, or in addition to, Closure
	| based routes. That's great! Here is an example controller method to
	| get you started. To route to this controller, just add the route:
	|
	|	Route::get('/', 'HomeController@showWelcome');
	|
	*/

	public function showWelcome()
	{
		return View::make('hello');
	}

    public function actualizarPerfil(){
        $user = DB::table('usuarios')->where('id_usuario', Input::get('id_usuario'))->first();
   // Usuarios::find(Input::get('id_usuario'));
    if($user != NULL){
        //$user = Usuarios::find($user->id_usuario);
        $data=array();
        $data['nombre'] = Input::get('nombre');
    //    $data['email'] = Input::get('email');
     //   $data['password'] = Input::get('password');
        $data['sexo'] = Input::get('sexo');
     //   $nac = explode(" ",Input::get('timestamp'));
    //    $day = explode("-",$nac[0]);            
        $data['fecha_nac'] = Input::get('fecha'); // $day[2]."/".$day[1]."/".$day[0]." ".$nac[1]; 
     //   $data['vinculado'] = Input::get('vinculado');
        $data['apodo'] = Input::get('apodo');
        Usuarios::where('id_usuario', $user->id_usuario)
            ->update($data);
        $array = array("estado"=> "ok", "asunto"=>"se han actualizado los datos del usuario",);
        //var_dump($data);
    }else{
         $array = array("estado"=> "ko", "asunto"=>"el usuario no existe",);    
        //echo "ha habido un error";
 
    }
    echo json_encode($array);
    // return Redirect::to('/');
    }
    
    public function actualizaPerfilCompleto(){
         $user = DB::table('usuarios')->where('id_usuario', Input::get('id_usuario'))->first();
   // Usuarios::find(Input::get('id_usuario'));
    if($user != NULL){
        //$user = Usuarios::find($user->id_usuario);
        $data=array();
        $data['nombre'] = Input::get('nombre');
    //    $data['email'] = Input::get('email');
     //   $data['password'] = Input::get('password');
        $data['sexo'] = Input::get('sexo');
     //   $nac = explode(" ",Input::get('timestamp'));
    //    $day = explode("-",$nac[0]);            
        $data['fecha_nac'] = Input::get('timestamp'); // $day[2]."/".$day[1]."/".$day[0]." ".$nac[1]; 
        $data['id_ciudad'] = Input::get('id_ciudad');
        $data['id_pais'] = Input::get('id_pais');
        $data['id_vives'] = Input::get('id_vives');
     //   $data['vinculado'] = Input::get('vinculado');
        $data['apodo'] = Input::get('apodo');
        Usuarios::where('id_usuario', $user->id_usuario)
            ->update($data);
        $array = array("estado"=> "ok", "asunto"=>"se han actualizado los datos",);
        //var_dump($data);
    }else{
         $array = array("estado"=> "ko", "asunto"=>"el usuario no existe",);    
        //echo "ha habido un error";
 
    }
    echo json_encode($array);
    // return Redirect::to('/');
    }
  
    public function crearVinculacion(){
       //  echo "vinculacion. Aqui miramos si hay una vinculación pendiente para este usuario";
            $apodo = Input::get('apodo');
            $id1 = Input::get('id1');
            $email = Input::get('email');
            
           /*El que se busca por id es el que crea la vinculación*/
            $user1 = DB::table('usuarios')->where('id_usuario', $id1)->first();//DB::table('usuarios')->where('email', Input::get('email'))->first();
            $user = DB::table('usuarios')->where('email', $email)->first();
           
           /*Comprovamos que existen los usuarios, en prinicipio $user1 tiene que existir ya que es el que esta realizando la petición*/
            if( $user!=NULL && $user1 != NULL){
                $hoy = getdate();
                $key = substr($hoy[0], -1); 
                if($key == 0){
                    $key=1;
                }
                if($hoy[0]%$key == 0){
                    $search = array("0","3","4","7","8");
                    $replace = array("V","F","C","T","S");
                    $hoy[0]=$hoy[0]/$key;
                }else{
                    $search = array("1","2","5","6","9");
                    $replace = array("X","H","N","R","F");
                    $hoy[0]=$hoy[0]/($key+1);
                }
                $string = str_ireplace($search, $replace, $hoy, $i);
                $codigo = substr($string[0], 1); 
                $word = explode(".", $codigo);
                $codigo = $word[0];
                /*Enviamos email a la persona que se le ha puesto un apodo con el codigo de la vinculacion*/
                $mensaje = "Bienvenido a Play2Gether ".$apodo.". Tu código de vinculación és:\r\n".$codigo;
                $mensaje = wordwrap($mensaje, 70, "\r\n");
                mail($user->email, 'Play2gether Acceso', $mensaje);

                /*Enviamos email a la persona que solicita la vinculacion*/
                $mensaje = "Bienvenido a Play2Gether. Has creado una vinculación. Tu código de vinculación és:\r\n  ".$codigo;
                $mensaje = wordwrap($mensaje, 70, "\r\n");
                mail($user1->email, 'Play2gether Acceso', $mensaje);

                $data = array('id_tipo_solicitud' => 1, 'id_usuario1' => $user1->id_usuario, 'id_usuario2'=> $user->id_usuario, "apodo"=>$apodo,"c_vinculacion"=> $codigo,);
                
                DB::table('solicitud_enlace')->insert($data);    
               $envios = new Envios;
               $envios->tipo_envio = 2;
               $envios->id_objeto = 0;
                    /*este es el usuario al que va el envio*/
               $envios->id_usuario = $user->id_usuario;
          //     $envios->email = $email;
               $envios->save();
             //   $enlace = new Enlace;
            //    $enlace->id_usuario1 = $user1->id_usuario;
            //    $enlace->id_usuario2 = $user->id_usuario;
            //    $enlace->c_vinculacion = $codigo;
            //    $enlace->save();
                //$usuario = Usuarios::find($user->id_usuario);
                //$usuario->apodo = $apodo;
                // $usuario->save();
                
           //     Usuarios::where('id_usuario', $user->id_usuario)
        //    ->update(array('apodo' => $apodo));
                
          
                
                $array = array(
                    "id_usuario" => $user->id_usuario,
                    "apodo" => $apodo,
                    "email" => $user->email,
                    "nombre" => $user->nombre,
                    "id_ciudad" => $user->id_ciudad,
                    "id_pais" => $user->id_pais,
                    "id_vives" => $user->id_vives,
                    "c_vinculacion" => $codigo,
                    "estado" => "ok",
                    "asunto" => "Se mando el codigo de vinculacion",
                );
                
            }else{
                $array = array(
                    "estado" => "ko",
                    "asunto" => "Es posible que el usuario no exista",
                );
            }
            echo json_encode($array);
    }
    
    public function vincular(){
         
        $id = Input::get('id_usuario_solicitado');
        $c_vinculacion = Input::get('c_vinculacion');
        $apodo_solicitante = Input::get('apodo');
        
        $solicitud_enlace = DB::table('solicitud_enlace')
                        ->where('id_usuario2', '=', $id)
                        ->where('c_vinculacion','=' ,$c_vinculacion)
                        ->get();
        
        
        if($solicitud_enlace != NULL){
               // var_dump($solicitud_enlace);
                    $user2 = DB::table('usuarios')->where('id_usuario', $solicitud_enlace[0]->id_usuario2)->first();
                   // $user1 = DB::table('usuarios')->where('id_usuario', $solicitud_enlace[0]->id_usuario1)->first();
            
                    DB::table('usuarios')
                        ->where('id_usuario', $solicitud_enlace[0]->id_usuario1)
                        ->update(array('apodo' => $apodo_solicitante));
                    //$user1->save();
            
            /*parece ambiguo he innecesario pero es por una correccion y de momento no se cambia...*/
                    $enlace = new Enlace;
                    $enlace->id_usuario1 = $solicitud_enlace[0]->id_usuario1;
                    $enlace->id_usuario2 = $user2->id_usuario;
                    $enlace->c_vinculacion = $solicitud_enlace[0]->c_vinculacion;    
                    $enlace->save();
                    
                    DB::table('solicitud_enlace')->where('id_solicitud', '=', $solicitud_enlace[0]->id_solicitud)->delete();
                    
                    $apodo = array("apodo" => $solicitud_enlace[0]->apodo);
                      Usuarios::where('id_usuario', $user2->id_usuario)
                ->update($apodo);
            
                    $realizado = array("realizado"=>1);
                    Envios::where('id_usuario', $user2->id_usuario)->where('tipo_envio','=',2)->delete();
                     $envios = new Envios;
                       $envios->tipo_envio = 1;
                       $envios->id_objeto = 0;
                            /*este es el usuario al que va el envio*/
                       $envios->id_usuario = $solicitud_enlace[0]->id_usuario1;
                  //     $envios->email = $email;
                       $envios->save();        
            
                    $array = array(
                        "c_vinculacion" => $solicitud_enlace[0]->c_vinculacion,
                        "estado" => "ok",
                        "asunto" => "Enlace realizado",
                    );
                
               
            //        $mensaje = "Bienvenido a Play2Gether ".$apodo.". Tu código de vinculación és:\r\n".$codigo;
             //       $mensaje = wordwrap($mensaje, 70, "\r\n");
            //        mail($user->email, 'Play2gether Acceso', $mensaje);
        }else{
              $array = array(
                        "estado" => "ko",
                        "asunto" => "Enlace no realizado por algun error en los datos",
                    );
        }
         echo json_encode($array);
        
    //    var_dump($datos);
     //   $datos2 =  Ciudad::where('id_ciudad', '=', 1)->take(10)->get();
    //    print_r($datos2);
    //    echo $datos2[0]->id_ciudad;
    //     echo $datos2[0]->nombre_ciudad;
    //    $datos3 = Ciudad::find(2); 
    //      var_dump($datos3);
       // return 'envios pendientes '.$id;
    }
    
    public function desvincular(){
         /*Hay que introducir en la tabla envios_pendientes*/
            $id = Input::get('id_usuario');;
                      
            $result = DB::table('enlace')->where('id_usuario2', '=', $id)->orWhere('id_usuario1', '=', $id)->first();
        
            //var_dump($result);
            if($result != NULL){
              
                $eliminar = DB::table('enlace')->where('id_usuario2', '=', $id)->orWhere('id_usuario1', '=', $id)->delete();
                $array = array(
                        "estado" => "ok",
                        "asunto" => "Desvinculado",
                );
             //   Envios::where('id_usuario', $user2->id_usuario)->where('tipo_envio','=',2)->delete();
                     $envios = new Envios;
                       $envios->tipo_envio = 5;
                       $envios->id_objeto = 0;
                            /*este es el usuario al que va el envio*/
                       $envios->id_usuario = $result->id_usuario1;
                  //     $envios->email = $email;
                       $envios->save();
                $envios = new Envios;
                       $envios->tipo_envio = 5;
                       $envios->id_objeto = 0;
                            /*este es el usuario al que va el envio*/
                       $envios->id_usuario = $result->id_usuario2;
                  //     $envios->email = $email;
                       $envios->save();
              
              
            }else{
                 $array = array(
                        "estado" => "ko",
                        "asunto" => "La vinculacion no ha sido eliminada o no existe",
                 );
            }
            echo json_encode($array);
        //    var_dump($datos);
         //   $datos2 =  Ciudad::where('id_ciudad', '=', 1)->take(10)->get();
        //    print_r($datos2);
        //    echo $datos2[0]->id_ciudad;
        //     echo $datos2[0]->nombre_ciudad;
        //    $datos3 = Ciudad::find(2); 
        //      var_dump($datos3);
          //  return 'envios pendientes '.$id;
    
    
    }
     public function cancelarVinculacion(){
          /*Hay que introducir en la tabla envios_pendientes*/
             $id = Input::get('id_usuario');
   
                  
    $result = DB::table('solicitud_enlace')->where('id_usuario1', '=', $id)->get();

    //var_dump($result);
    if($result != 0){
        $eliminar = DB::table('solicitud_enlace')->where('id_usuario1', '=', $id)->delete();
        $array = array(
                "estado" => "ok",
                "asunto" => "Vinculación cancelada",
        );
        // Envios::where('id_usuario', $user2->id_usuario)->where('tipo_envio','=',2)->delete();
                     $envios = new Envios;
                       $envios->tipo_envio = 5;
                       $envios->id_objeto = 0;
                            /*este es el usuario al que va el envio*/
                       $envios->id_usuario = $result->id_usuario1;
                  //     $envios->email = $email;
                       $envios->save();
        $envios = new Envios;
                       $envios->tipo_envio = 5;
                       $envios->id_objeto = 0;
                            /*este es el usuario al que va el envio*/
                       $envios->id_usuario = $result->id_usuario2;
                  //     $envios->email = $email;
                       $envios->save();
                
                
       
    }else{
         $array = array(
                "estado" => "ko",
                "asunto" => "La vinculación no ha sido cancelada o no existe",
         );
    }
    echo json_encode($array);
//    var_dump($datos);
 //   $datos2 =  Ciudad::where('id_ciudad', '=', 1)->take(10)->get();
//    print_r($datos2);
//    echo $datos2[0]->id_ciudad;
//     echo $datos2[0]->nombre_ciudad;
//    $datos3 = Ciudad::find(2); 
//      var_dump($datos3);
  //  return 'envios pendientes '.$id;
    }
    public function cancelarInvitacion(){
        /*Hay que introducir en la tabla envios_pendientes*/
             $id = Input::get('id_usuario_solicitado');
    $c_vinculacion = Input::get('c_vinculacion');
    $enviar_email = Input::get('enviar_email');
                  
    $result = DB::table('solicitud_enlace')->where('id_usuario2', '=', $id)->where('c_vinculacion', '=', $c_vinculacion)->get();

    //var_dump($result);
    if($result != 0){
        $eliminar = DB::table('solicitud_enlace')->where('id_usuario2', '=', $id)->where('c_vinculacion','=',$c_vinculacion)->delete();
        $array = array(
                "estado" => "ok",
                "asunto" => "Invitación eliminada",
        );
      //   Envios::where('id_usuario', $user2->id_usuario)->where('tipo_envio','=',2)->delete();
                     $envios = new Envios;
                       $envios->tipo_envio = 5;
                       $envios->id_objeto = 0;
                            /*este es el usuario al que va el envio*/
                       $envios->id_usuario = $result->id_usuario1;
                  //     $envios->email = $email;
                       $envios->save();
                $envios = new Envios;
                       $envios->tipo_envio = 5;
                       $envios->id_objeto = 0;
                            /*este es el usuario al que va el envio*/
                       $envios->id_usuario = $result->id_usuario2;
                  //     $envios->email = $email;
                       $envios->save();
        
        if($enviar_email == 1){
                $user = DB::table('usuarios')->where('id_usuario', '=', $result[0]->id_usuario1)->get();
                $mensaje = "Tu invitación ha sido cancelada ";
                $mensaje = wordwrap($mensaje, 70, "\r\n");
                mail($user[0]->email, 'Play2gether Cancelacion de invitación', $mensaje);
        }
    }else{
         $array = array(
                "estado" => "ko",
                "asunto" => "La invitación no ha sido eliminada o no existe",
         );
    }
    echo json_encode($array);
//    var_dump($datos);
 //   $datos2 =  Ciudad::where('id_ciudad', '=', 1)->take(10)->get();
//    print_r($datos2);
//    echo $datos2[0]->id_ciudad;
//     echo $datos2[0]->nombre_ciudad;
//    $datos3 = Ciudad::find(2); 
//      var_dump($datos3);
  //  return 'envios pendientes '.$id;
    }
    
    
}